package src.main.kotlin.day09

/**
 * 对象 Object
 *  2。对象表达式
 *      有时候不一定非要定义一个新的命名类，可以是某个现有类的一种变体实例
 *      但只需要用一次就行了，对于这种用完一次不在用的类实例，连命名都可以省掉
 *      这个对象是XX的子类，这个匿名内部类依然遵循Object关键字的规则，即一旦实例化，该匿名
 *      类只能有唯一的一个实例存在
 */

open class Person{
    open fun load()="root loading..."
}


fun main() {

    val p = object : Person() {

        override fun load() = "this is child loading.."
    }

    println(p.load())
    //同一个实例
    println(p)
    println(p)
    println(p)
    println(p)


}